/*****************************************************************************
 *  
 *  This file is part of fightplan.
 *  
 *  fightplan is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *  
 *  fightplan is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with fightplan.  If not, see <http: *  www.gnu.org/licenses/>.
 *  
 *  Diese Datei ist Teil von Fubar.
 *  
 *  Fubar ist Freie Software: Sie können es unter den Bedingungen
 *  der GNU General Public License, wie von der Free Software Foundation,
 *  Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren
 *  veröffentlichten Version, weiterverbreiten und/oder modifizieren.
 *  
 *  Fubar wird in der Hoffnung, dass es nützlich sein wird, aber
 *  OHNE JEDE GEWÄHELEISTUNG, bereitgestellt; sogar ohne die implizite
 *  Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.
 *  Siehe die GNU General Public License für weitere Details.
 *  
 *  Sie sollten eine Kopie der GNU General Public License zusammen mit diesem
 *  Programm erhalten haben. Wenn nicht, siehe <http://www.gnu.org/licenses/>
 *  
 *****************************************************************************/
package fightplan;

import java.awt.SplashScreen;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

import fightplan.core.FPExceptionHandler;
import fightplan.diag.LoginDialog;
import fightplan.views.MainView;

public class FightPlan implements Runnable {

	private boolean isMaster;

	public FightPlan(boolean isMaster) {
		this.isMaster = isMaster;
	}

	public void run() {
		if (SplashScreen.getSplashScreen() != null) {
			SplashScreen.getSplashScreen().close();
		}

		JFrame frame;
		if (isMaster) {
			ModeControl modeControl = ModeControl.getInstance();
			modeControl.choose();
			if (modeControl.getTournament() == null)
				return;

			frame = new MainView(modeControl.getTournament());
			frame.setSize(1024, 750);
		} else {
			frame = new LoginDialog();
			frame.pack();
		}
		frame.setLocationRelativeTo(null);
		frame.setVisible(true);
		FPExceptionHandler.instance().setParent(frame);
	}

	public static void main(String[] args) {
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (Exception exception) {
			exception.printStackTrace();
		}
		SwingUtilities.invokeLater(new FightPlan(args.length == 0));
	}

}
